Systems and methods of comparing product information

ABSTRACT

The present invention relates to systems and methods for comparing multiple sets of information in a compare display. One embodiment of the invention includes a system for displaying cruise package and pricing information in side-by-side windows wherein the user may replace the contents of each of the windows with an alternate selection of cruise package and pricing information. The compare display enables the users to compare accurately the detailed cruise package and pricing information.

RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. Provisional Application No. 60/168,871 filed Dec. 3, 1999, the disclosure of which is hereby incorporated by reference. In addition, this application is a continuation-in-part of U.S. patent application filed concurrently and entitled “SYSTEMS AND METHODS OF ON-LINE BOOKING OF CRUISES,” internal reference number TRAVL.002A, which is hereby incorporated by reference.

FIELD OF THE INVENTION

[0002] The present systems and methods relate generally to the field of on-line product comparisons and in particular concern applications designed to facilitate cruise price comparisons, reservations, booking, and customer management by travel agents as well as individual customers.

BACKGROUND

[0003] The growth of the cruise industry has created an increase in the number of passenger cruise lines that sail each year. Each cruise line offers a variety of cruise packages, and the cruise packages vary depending on destination, sailing date, cruise ship, cabin category, excursions, special discounts, and so forth. While such variety offers great selection to potential customers, finding the cruise package that best fits the customer's budget and preferences is a difficult task. As a result, travel agents often spend large amounts of time and energy sorting through a myriad of cruise information to find cruises that are of interest to the customer.

[0004] One common problem is that conventional approaches make it difficult to view cruise package and pricing information namely because there is a large amount of cruise data associated with each cruise package. For example, cruise data may include itinerary, cabin type, cabin location, number of persons per cabin, group block discounts, and so forth. Viewing this large amount of data can be quite difficult.

[0005] Another common problem is that the large amount of cruise package and pricing information makes it difficult to compare accurately various cruise packages. It is cumbersome to view information for a single cruise package and even more difficult to view information for multiple cruise packages. Regardless of the difficulty, the customer needs to know the details of each cruise package in order to determine which cruise package is the “best deal.” For example, suppose X offers a cruise to Panama for $3000 and Y offers a similar cruise to Panama for $2800. Y appears to be a better deal until the customer learns that X's price is for the Presidential Suite and Y's price is for a Fourth Class cabin. Access to cruise package pricing information is critical.

[0006] An additional problem is that travel agents spend large amounts of time determining the preferences of each individual customer, finding cruise packages that meets the customer's needs, and booking the cruise package. A travel agent spends, on average, well over one hour with each customer manually sifting through piles of paper documentation and is constantly on the phone with cruise lines to get current information, such as availability and pricing.

SUMMARY OF THE INVENTION

[0007] One embodiment of the present invention is a method of providing cruise package and pricing information for comparison utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs. The method comprises receiving a selection of at least two cruise packages from a remote user's web browser program, and obtaining cruise package and pricing information that corresponds to the at least two cruise packages from an electronic database of cruise data. The method also comprises preparing the cruise package and pricing information for display in an electronic web document and sending the prepared cruise package pricing information to the remote user's web browser program.

[0008] Another embodiment of the present invention is a method of using a computer to compare cruise package and pricing information utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs. The method comprises receiving a request for cruise package and pricing information for at least two cruise different cruise lines from a remote user's web browser program, retrieving cruise package and pricing information that corresponds to the request from a database of electronically stored cruise line data, and outputting the cruise package and pricing information for display as an electronic document by the remote user's web browser program.

[0009] An additional embodiment of the present invention is a method of requesting cruise package and pricing information for comparison using a web browser program to electronically communicate with a remote cruise web server system via a data communications network. The method comprises sending a request to the remote cruise web server system for cruise package and pricing information for at least two different cruise lines and receiving cruise package and pricing information from the remote cruise web server system that corresponds to the request, wherein the cruise package and pricing information was retrieved from an electronic database of cruise line data and the cruise package and pricing information is formatted for side-by-side display by the web browser program.

[0010] Another embodiment of the present invention is a method of using a computer to book a cruise package using a web browser program to electronically communicate with a remote cruise web server system via a data communications network. The method comprises sending a request to the remote cruise web server system for cruise package and pricing information for at least two cruise different cruise ships and receiving from the remote cruise web server system the cruise package and pricing information for the at least two different cruise ships, wherein the cruise package and pricing information is displayed in a side-by-side display using the web browser program.

[0011] An additional embodiment of the present invention is a network node in a network comprising a user node having a browser program coupled to the network, the user node providing requests for information on the network. The network node comprises a cruise booking node responsive to a request to retrieve cruise package and pricing information for at least two different cruise lines from the user node, wherein the cruise booking node retrieves cruise package and pricing information from an electronic database for display in an electronic document and sends the cruise package and pricing information to the user node.

[0012] Another embodiment of the present invention is a system for comparing cruise packages implemented in a web server environment, wherein a plurality of remote users using web browser programs electronically communicate with the system via a data communications network. The system comprises an electronically stored data structure of cruise package and pricing information wherein the cruise package and pricing information includes information from different cruise lines, a program module configured to receive a display request from a remote user's web browser program, and a program module configured to obtain cruise package and pricing information from the electronically stored data structure based at least upon the display request. The system also comprises a program module configured to prepare the obtained cruise package and pricing information for display in an electronic web document, and a program module configured to output to the remote user's web browser program the prepared cruise package and pricing information for display in the electronic web document.

[0013] An additional embodiment of the present invention is a method of organizing cruise package and pricing information for display utilizing a cruise selling and booking web server system to electronically communicate via a data communications network with a plurality of remote users using web browser programs. The method comprises receiving a first identifier corresponding to a first cruise package from a remote user's web browser program, retrieving a first set of cruise package and pricing information from an electronic database, wherein the first set of cruise package and pricing information corresponds to the first identifier, and receiving a second identifier corresponding to a second cruise package from the remote user's web browser program. The method also comprises retrieving a second set of cruise package and pricing information from the electronic database, wherein the second set of cruise package and pricing information corresponds to the second identifier, formatting at least a portion of the first set of cruise package and pricing information and at least a portion of the second set of cruise package and pricing information for display in a side-by-side comparison section of an electronic document, wherein the side-by-side comparison section includes at least a first window and a second window, and returning to the remote user's web browser program the formatted at least a portion of the first set of cruise package and pricing information and at least a portion of the second set of cruise package and pricing information.

[0014] Another embodiment of the present invention is a method of using a computer to compare cruise package information using a web browser program to electronically communicate with a remote cruise web server system via a data communications network. The method comprises sending a request for a first set of cruise package and pricing information to the remote cruise web server system and sending a request for a second set of cruise package and pricing information to the remote cruise web server system. The method also comprises receiving from the remote cruise web server system the first set of cruise package and pricing information in a first window of a display, wherein the display is included in a web document accessible by the web browser program, and receiving from the remote cruise web server system the second set of cruise package and pricing information in a second window of the display.

[0015] An additional embodiment of the present invention is a method of providing cruise package information for display utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs. The method comprises receiving a request for cruise package and pricing information from a remote user's web browser program, determining whether a card is available;

[0016] if there is no card available, returning an error message to the remote user's web browser program, and if card is available, retrieving the requested cruise package and pricing information from an electronic database of cruise data and returning to the remote user's web browser program the cruise package and pricing information for electronic display in an available card.

[0017] Another embodiment of the present invention is a system for comparing cruise package information implemented in conjunction with a web browser program, wherein the web browser program communicates with a remote cruise web server system via a data communications network. The system comprises a selection software component configured to send requests to the remote cruise web server system for cruise package and pricing information for at least two cruise packages and a display software component configured to display in the web browser program the requested cruise package and pricing information for the at least two cruise packages in a side-by-side display as part of an electronic document.

[0018] An additional embodiment of the present invention is a method of providing cruise package and pricing information for comparison utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs. The method comprises means for receiving a selection of at least two cruise packages from a remote user's web browser program and obtaining cruise package and pricing information that corresponds to the at least two cruise packages from an electronic database of cruise data. The method also comprises means for preparing the cruise package and pricing information for display in an electronic web document and means for sending the prepared cruise package pricing information to the remote user's web browser program.

[0019] Another embodiment of the present invention is a method of using a computer to book a cruise package using a web browser program to electronically communicate with a remote cruise web server system via a data communications network. The method comprises means for sending a request to the remote cruise web server system for cruise package and pricing information for at least two cruise different cruise ships and means for receiving from the remote cruise web server system the cruise package and pricing information for the at least two different cruise ships, wherein the cruise package and pricing information is displayed in a side-by-side display using the web browser program.

[0020] For purposes of summarizing the invention, certain aspects, advantages, and novel features of the invention are described herein. It is to be understood that not necessarily all such advantages may be achieved in accordance with any particular embodiment of the invention. Those skilled in the art will recognize that the invention may be embodied or carried out in a manner that achieves one advantage or group of advantages as taught herein without necessarily achieving other advantages as may be taught or suggested herein.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021] These and other features will now be described with reference to the drawings summarized below. These drawings and the associated description are provided to illustrate embodiments of the invention and not to limit the scope of the invention. Throughout the drawings, reference numbers are re-used to indicate correspondence among referenced elements. In addition, the first digit of each reference number indicates the figure in which the element first appears.

[0022]FIG. 1 illustrates a high-level block diagram of one embodiment of the present invention.

[0023]FIG. 2A illustrates a high-level block diagram of one embodiment of the present invention.

[0024]FIG. 2B illustrates a high-level block diagram of an additional embodiment of the present invention.

[0025]FIG. 3A illustrates a high-level block diagram of one embodiment of the present invention.

[0026]FIG. 3B illustrates a high-level block diagram of an additional embodiment of the present invention.

[0027]FIG. 4 illustrates a high-level block diagram of a comparison module.

[0028]FIG. 5 illustrates one embodiment of a compare display template.

[0029]FIG. 6A illustrates one embodiment of a compare display.

[0030]FIG. 6B illustrates one embodiment of a compare display.

[0031]FIG. 6C illustrates one embodiment of a compare display.

[0032]FIG. 7 illustrates one embodiment of a flow chart of a compare display process.

[0033]FIG. 8 illustrates one embodiment of a flow chart of a user selection process.

DETAILED DESCRIPTION

[0034] Systems and methods which represent various embodiments and example applications of the invention will now be described with reference to the drawings. Variations to the systems and methods which represent other embodiments will also be described. In one disclosed embodiment, the systems and methods are used to compare product information and are described in the context of a cruise selling and booking system. The inventors contemplate that the present invention is not limited by the type of environment in which the product information is compared and that other types of environments may be used, such as, for example, a real estate system, an airline travel system, a car rental system, a car sales system, as well as any other type of system that sells and/or provides information about various products and/or services. The figures and descriptions, however, relate to embodiments of the invention wherein the product information is cruise package and pricing information.

[0035] The present invention relates to systems and methods for comparing multiple sets of information in a compare display. One embodiment of the invention includes a system for displaying cruise package and pricing information in side-by-side windows wherein the user may replace the contents of each of the windows with an alternate selection of cruise package and pricing information. The compare display enables the users to compare accurately the detailed cruise package and pricing information.

[0036] One benefit of one embodiment is that users may select among a variety of cruise package options permitting the user to view a myriad of available cruise package and pricing information. A user may display information from different cruise lines, cabin categories, rate options, and so forth.

[0037] Another benefit of one embodiment is that users may compare detailed information about the cruise package and pricing information in the compare display such that as the user scrolls through the information of one set of cruise package and pricing information, the corresponding information of the other cruise packages is also displayed.

[0038] An additional benefit of one embodiment it that the user may replace one cruise package with another allowing for the comparison of even more cruise packages.

[0039] An further benefit of one embodiment is that the user is able to find and book cruises in a more efficient manner saving time. The cruise selling and booking system provides a tool for readily accessing up-to-date, accurate cruise information without spending the large amount of time often required when telephoning the cruise lines one-by-one to collect cruise information and to book a cruise.

[0040] In one embodiment, these features are integrated into a cruise selling and booking system that assists agents and customers with finding cruises that meet the customers' preferences. Furthermore, the cruise selling and booking system 110 facilitates the ability of the customers and agents to compare accurately the various cruise packages.

[0041] I. Overview

[0042] In one embodiment, the systems and methods may be used in the context of a cruise selling and booking system 110. FIG. 1 illustrates the cruise selling and booking system 110 of one embodiment wherein a plurality of customers, agents, and cruise lines interact with a cruise selling and booking system 110 via communication mediums 120 such as the Internet 125. Cruise lines may interact directly with the cruise selling and booking system 110 and/or via a cruise line interface system 130. The cruise selling and booking system 110, in the illustrated embodiment, provides an interactive tool for compiling, reviewing, and processing information obtained from the cruise lines, customers, and agents. The customer is provided with information about various cruises packages and may book a cruise package utilizing components of the cruise selling and booking system 110 through interaction with an agent.

[0043] Using the agent computer, as illustrated in FIG. 2A, the agent accesses the components of the cruise selling and booking system 110 to find information about the customer, to provide the customer with information about cruise sailings from the cruise line database 234, and to book cruise packages as desired by the customer. Additionally, the agent may view multiple sets of cruise package and pricing information in a compare display for side-by-side comparison.

[0044] In one embodiment, a customer may also access the cruise selling and booking system 110 without necessarily interacting with an agent as illustrated in FIG. 2B. For example, a customer may access the cruise selling and booking system 110 via a web based service by utilizing a standard web browser on his own computer to connect to the cruise selling and booking system 110 web page. In one embodiment, should the customer desire the assistance of an agent, the cruise selling and booking system 110 may store the information entered by the customer in the database collection. An agent with access to the cruise selling and booking system 110 may subsequently retrieve the information. This feature provides improved customer/agent interactivity by saving the customers from repeating information which was previously stored in the cruise selling and booking system 110 to each agent with whom they interact. As it is recognized that both customers and agents may access the cruise selling booking system, the term “users” will be used herein to refer to customers and/or agents.

[0045] In one embodiment, a system and method of comparing product information may commence with a user access the cruise selling and booking system 110 to search for cruise packages that meet a customer's preferences. The user may utilize the cruise selling and booking system 110 to select a set of sailings of potential interest to the customer. Moreover, the user may then select detailed information about two or more of the sailings for comparison assisting the user with the cruise package selection process. The comparison of product information improves the efficiency and accuracy of the user's decision when selecting the proper cruise package.

[0046] II. Cruise Selling and Booking System

[0047] An overview of one embodiment of a cruise selling and booking system 110 is shown in FIG. 2A. In the exemplary system, a customer communicates with an agent via telephone and the agent uses a computer (hereinafter “agent computer”) to connect to the Internet 125 to communicate with the cruise selling and booking system 110. While the figure illustrates communication between the agent and customer via telephone, it is recognized that the communication between the customer and the agent may take any of a number of forms including in-person conversations, mailed correspondence, e-mail, facsimile, and so forth. Additionally, the customer may use a computer (hereinafter “customer computer 250”) to interact with the agent through online methods which may include email correspondence, live “chat” methods, dedicated software programs designed to facilitate online communication, and the like. In one embodiment, the cruise selling and booking system 110 includes a server component 210, a cruise selling and booking component 220, and a database collection. In one embodiment, the database collection 230 includes a customer database 232, a cruise line database 234, and activity database 236, and an agent database 238. It is recognized that the information stored in the database collection 230 may be discretely stored in multiple independent databases, combined in a single database, or a combination thereof.

[0048] In one embodiment, the agent may choose at least two pricing categories from a price matrix. The price matrix represents various pricing schemes of the various cruise lines and their cruise sailings. The cruise selling and booking system 110 then presents the selected pricing options and corresponding cruise sailing information side-by-side in a compare display.

[0049] In one embodiment, the agents and/or customers interact with computers to access the cruise selling and booking system 110 via communication mediums 120.

[0050] A. Communication Mediums

[0051] The communication mediums 120 as shown in FIGS. 2A and 2B include the Internet 125. The Internet 125 is a global network of interconnected computers capable of sending and receiving information between one another. The structure of the Internet 125, which is well known to those of ordinary skill in the art, includes a network backbone comprising communications channels such as copper wire, optical fiber, or satellite based interconnections between numerous computers, hubs, and routers which control, direct, and maintain information passed between computers. Additional networks branch from the above-mentioned backbone, and these branches, in turn, have sub-networks branching from them, and so on. Typically, information is passed through the network in the form of packets which are discrete pieces the information desirably sent through the network. These packets of information are encoded in a form interpretable by the network infrastructure and may support features such as data compression, encryption, and error correction to optimize the speed and efficiency by which the information is transferred. For a more detailed description of the structure and operation of the Internet 125, please refer to “The Internet Complete Reference,” by Harley Hahn and Rick Stout, published by McGraw-Hill, 1994.

[0052] One popular segment of the Internet 125 is the World Wide Web (or Web). The World Wide Web comprises many thousands of computers which utilize the Internet 125 infrastructure to serve and distribute information. Typically, a server system is capable of two-way communication with other computers and can desirably send information to other computers which request the information or content stored on the server system. The information stored on the server system is typically interpreted using a software package known as a browser, which is capable of displaying graphical, textual, audio and/or visual information.

[0053] Some of the server systems, which provide information on the World Wide Web, are often referred to as “websites” and interact with other computers on the World Wide Web. Generally, each website has an associated electronic page or series of electronic pages which the server sends to those computers requesting the information. The requested information generally takes the form of an electronic page (or web page) encoded in one or more specific languages that is interpreted by the requesting computer and the browser which it runs. Several such languages commonly used by web servers include, but are not limited to, Hypertext Markup Language (“HTML”), JAVA, JAVA Script, Extensible Markup Language (“XML”), Active Server Pages (“ASP”), and CGI scripting. The web page provides the requesting computer with a document that organizes the presentation of the information into a display using text, graphical images, audio, and/or video. Furthermore, the computer, on which the online document is viewed, may communicate with the website by sending and receiving information through interface objects such as, for example, fields, buttons, pull down menus, and key entered commands. For a more detailed description on the World Wide Web, please refer to “How to Set Up and Maintain a World Wide Web Site” by Lincoln D. Stein, published by Addison-Wesley Publishing Company, 1995.

[0054] One of ordinary skill in the art will recognize that the communication mediums 120 may be advantageously be comprised of one or more types of networks without detracting from the invention. The communication mediums 120 may include, by way of example, local area networks (“LANs”), wide area networks (“WANs”), public Internets, private Internets, a private computer network, a secure Internet, a private network, a public network, a value-added network, interactive television networks, wireless data transmission networks, two-way cable networks, interactive kiosk networks, digital subscriber lines, cable modem lines, and the like. The disclosed invention is thus suitable for providing connectivity through many different forms of communication mediums 120, however, it will be further discussed in the context of connecting through the Internet 125. In addition, it is recognized that one or more networks may be used to access the cruise selling and booking system 110. For example, a customer may interact with the cruise selling and booking system 110 via the Internet 125, an agent may interact with the cruise selling and booking system 110 via a LAN, and/or the cruise lines may interact with the cruise selling and booking system 110 via a wireless data transmission network. In another embodiment, the customers, agents, and cruise lines may all access the cruise selling and booking system 110 via the Internet 125.

[0055] B. User Computer

[0056] The agent computer 240 and/or customer computer 250 (“user computers 240, 250”) shown in FIGS. 2A and 2B are devices that allow the customer or agent to interact with cruise selling and booking system 110 via the communication mediums 120. In one embodiment, the user computer 240, 250 is a conventional personal computer equipped with a modem, Ethernet card, or other component which allows the computer to send and receive information through the communication mediums 120. Preferably, the user computer 240, 250 runs an appropriate operating system such as the Microsoft® Windows® 3.1, Microsoft® Windows® 98, Microsoft® Windows® 98 Second Edition®, Microsoft® Windows® Millennium Edition®, Microsoft® Windows® NT, Microsoft® Windows® 2000, Microsoft® Windows® CE, PalmOS®, Apple® MacOS®, Linux®, Solaris®, IRIX®, UNIX®, or IBM® OS/2® operating systems. As is conventional, a preferred operating system further includes a TCP/IP stack or other communications protocol which handles all incoming and outgoing message traffic passed over the communication mediums 120.

[0057] In other embodiments, the user computer 240, 250 may, for example, be a computer workstation, a local area network of individual computers, an interactive television, an interactive kiosk, a personal digital assistant, an interactive wireless communications device, cellular phone, or the like which interacts with the communication mediums 120. While in such systems, the operating systems may differ, the various operating systems may continue to provide the appropriate communication protocols needed to establish communication links with the communication mediums 120.

[0058] In one embodiment, the user computer 240, 250 utilizes several operational modules (not shown) including a customer or agent browser module. The browser module is a software program which allows a consumer to access different content providers through the communication mediums 120. In one embodiment, the browser module is the Netscape® Navigator developed by Netscape, Inc. or the Microsoft® Internet Explorer developed by Microsoft Corporation. One of ordinary skill in the art, however, will recognize that numerous other types of access software may also be used to implement an embodiment of the present invention. These other types of access software may, for example, include other types of Internet 125 browsers, custom network browsers, two-way communications software, cable modem software, point-to-point software, and the like.

[0059] While the agent computer 240 and customer computer 250 are referred to as user computers 240, 250, it is recognized that the agent computer 240 and customer computer 250 may be implemented using different or the same hardware and/or software.

[0060] C. Cruise Selling and Booking System

[0061] In one embodiment, the cruise selling and booking system 110 includes a server component 210, a cruise selling and booking component 220, and a database collection 230 as illustrated in FIG. 3A.

[0062] As used herein, the words component and module refer to logic embodied in hardware or firmware or to a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, C++, VISUAL BASIC, JAVA, C, FORTRAN, JAVA Script, and so forth. A software component/module may be compiled and linked into an executable program, or installed in a dynamic link library, or may be written in an interpretive language such as BASIC. It will be appreciated that software components/modules may be callable from other components or from themselves, and/or may be invoked in response to detected events or interrupts. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware components/modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The components described herein are preferably implemented as software components/modules, but may be represented in hardware or firmware.

[0063] 1. Server Component

[0064] In one embodiment, the cruise selling and booking system 110 includes a server component 210, as shown in FIG. 3A, that interacts with the cruise selling and booking component 220 and with the user computers 240, 250 via the communication mediums 120. The server component 210 may be configured to process messages from the user computer 240, 250, to send requests to the cruise selling and booking component 220, and to send response messages to the user computer 240, 250.

[0065] In one embodiment, the server component 210 is implemented as a web server which serves content over the Internet 125 using languages such as, the Hyper Text Markup Language (HTML). The web server may accept requests from browsers, such as, for example, the Netscape® Navigator or the Microsoft® Internet Explorer, and return the requested document(s) to the browsers. The web server may also utilize scripting programs, such as, for example, CGI scripts, SSL security, and Active Server Pages (“ASP”) to provide additional functionality. A wide variety of web servers may be used to implement the server component 210, such as, for example, AOLserver, the Apache server, the iServer, Microsoft IIS v5.0 server, Microsoft Site server, Netscape Enterprise server, WebSite Pro server, Xitami server, and so forth. Furthermore, the server component 210 may also be implemented using a variety of other servers, such as, for example, the BlueStone Sapphire server, the Interop server, a Netscape Server, an Oracle server, a SilverStream server, the Sybase Enterprise Server, the WebObjects server, and so forth. In addition, the server component 210 may be implemented using a variety of computer systems, such as, for example, a conventional general purpose computer using one or more microprocessors, such as, for example, a Pentium processor, a Pentium II processor, a Pentium Pro processor, an xx86 processor, an 8051 processor, a MIPS processor, a Power PC processor, or an Alpha processor, running a variety of platforms, such as, for example, Mac OS, OpenLinux, Red Hat Linux, Sun Solaris, SGI IRIX, Novel NetWare, Windows NT Server 4.0, and/or Windows 2000 Server.

[0066] 2. Cruise Selling and Booking Component

[0067] In one embodiment, the cruise selling and booking system 110 includes a cruise selling and booking component 220, as shown in FIG. 3A, that interacts with the server component 210 and the database collection. In other embodiments, it is recognized that the cruise selling and booking component 220 may also interact with external sources, such as, for example, proprietary cruise line systems, banking/financial systems, other travel agencies, external databases, and so forth. In one embodiment, the cruise selling and booking component 220 processes search requests from the server component 210, queries the database collection 230 and/or external sources for requested information, receives the query results from the various sources, processes the results, compiles the results into a set of data, and formats the results for presentation to the user via the server component 210.

[0068] The exemplary cruise selling and booking component 220 of FIG. 3A includes a cruise selling and booking process 310, a customer module 320, a cruise module 330, and a booking module 340. The cruise selling and booking process 310 guides the user through searching for cruise packages and booking a selected package. The exemplary customer module 320 includes a customer add process 322 that adds new customers to the customer database 232, a customer search process 324 that queries the customer database 232, and a customer update process 326 that updates an existing customer's information. The exemplary cruise module 330 includes a cruise information add process 332 that adds information about the cruise lines, the cruise ships, the cruise sailings, and/or the cruise packages to the cruise database, a cruise search process 334 that queries the cruise database, a cruise qualification process 336 that receives a set of cruise preferences and finds cruise sailing and/or cruise price information that matches the set of cruise preferences, and a cruise comparison process 338 that receives identifiers for multiple cruise sailings or packages and returns detailed information about the identified objects in a comparison format. The exemplary booking module 340 includes a cruise booking process 342 that receives cruise reservation/booking information and books the corresponding cruise package, and a cruise payment process 344 that receives cruise payment information and forwards the payment information to the appropriate entity.

[0069] An additional embodiment of a cruise selling and booking component 220 is illustrated in FIG. 3B. In addition to the customer module 320, the cruise module 330, and the booking module 340, the cruise selling and booking component 220 also includes an agent ownership module 350 configured to track and manage agent of record relationships, a customer qualification module 360 configured to match a customer's preferences with a variety of cruise package options, a price comparison module 370 configured to present the user with pricing options and to provide price matrices of detailed pricing information, and a comparison module 380 configured to provide side-by-side comparisons of various cruise package and pricing information.

[0070] It is recognized that in other embodiments, the cruise selling and booking component 220 may include other processes (not shown) that provide information from the database collection 230 as well as other external sources.

[0071] The cruise selling and booking component 220 may be implemented using a variety of software and hardware components. For example, the cruise selling and booking component 220 may include a set of electronic page documents that are written in HTML code, ASP scripts, and so forth. As is well known in the art, standard HTML documents are web documents wherein the structure and layout are defined by a variety of tags and attributes and are capable of being read by standard browsers. Active Server Pages (“ASP”) is a server-based, script language developed by Microsoft Corporation that allows for the dynamic generation of HTML code via server and client program scripts. Rather than maintain separate script programs and electronic page documents, the script programs may be embedded in the active server pages to form a set of “smart” electronic page documents. As is well known in the art, ASP documents do not need to be compiled, they can run on any browser, and may allow the transfer of information from the database collection. For a more detailed description of Active Server Pages, please refer to “ASP in a Nutshell: A Desktop Quick Reference,” by A. Keyton Weissinger, published by O'Reilly & Associates, Inc., 1999.

[0072] In addition, the cruise selling and booking component 220 may include additional software modules programmed in variety of languages for processing user requests, performing data lookup, compiling sets of data, formatting data, and so forth.

[0073] In one embodiment, the cruise selling and booking component 220 is implemented on the same component as the server component 210, though it is recognized that in other embodiments, the cruise selling and booking component 220 may be implemented in a separate component. For more information on the types of computers and/or platforms that may be used to implement the cruise selling and booking component 220, please see the section above entitled “Server Component.”

[0074] 3. Database Collection

[0075] In one embodiment, the cruise selling and booking system 110 includes a database collection, as shown in FIGS. 3A and 3B, that stores data about the customers, the cruises lines, the activities, and the agents. The exemplary database collection 230 includes four databases, a customer database 232, a cruise line database 234, an activity database 236, and an agent database 238.

[0076] The customer database 232 includes information about the customers. Such information may include name, address, phone number, cruise history, cabin preference, family information, age, travel destination preference, as well as other travel-related information.

[0077] The cruise line database 234 may include information about various cruise lines, various cruise ships, and various cruise sailings. The information about specific sailings may further include information such as ship name, number, sailing destination, departure dates, number of cabins, cabin categories, dining room capacity, viewable maps of the ship, as well as other detailed cruise line information. In addition, the cruise line database 234 may include information such as cabin availability and pricing data. In one embodiment, the cruise line database 234 data may be entered manually by a travel agent or downloaded/received from the cruise lines and/or other sources.

[0078] In one embodiment, the cruise line database 234 enables information about the various cruise lines to be stored in a single database or database collection. The cruise lines have a myriad of data that is organized differently according to each cruise line. For example, the cruise lines tend to use their own proprietary naming and pricing schemes; they individually select how the data is selected, stored, and configured; and some cruise lines may provide data that other cruise lines do not. For example, many cruise lines use their own system for categorizing cabins and have also use their own pricing schemes.

[0079] In some embodiments, the cruise line database 234 may normalize all of the data from the various cruise lines into a uniform system. In other embodiments, the cruise line database 234 may be configured to accommodate a wide variety of data. For example, the cruise line database 234 may include a table of categories in which each cruise line may have its own unique set of categories ranked from most luxurious to most economical thus maintaining the individuality of each cruise line while at the same time enabling the various cruise line data to be compared. The cruise line database 234 may, for example, provide pricing information for the most luxurious cabins for cruise sailings on Cruise Line A and Cruise Line B even though the cruise lines use different cabin naming nomenclature and different category structures.

[0080] The activity database 236 includes information about the activities in the cruise selling and booking system 110. These activities may include brochures, leads, quotes, reservations, bookings, as well as other ongoing activity information. In one embodiment, the activity database 236 is closely linked with the customer database 232, the cruise line database 234, and the agent database 238.

[0081] The agent database 238 includes information about the agents that use the cruise selling and booking system 110. Agent information may include the agents' logins, passwords, access privileges, company, address, phone numbers, booking history, current commission, and so forth.

[0082] While the database collection 230 depicted in FIGS. 3A and 3B includes four separate databases, it is recognized that in other embodiments, the database collection 230 may include other databases and/or some of the exemplary databases may be combined.

[0083] In one embodiment, the database collection 230 may be implemented with Structured Query Language (“SQL”) code. The structured query language is a language standardized by the International Standards Organization (“ISO”) for defining, updating, and querying a relational database. It is recognized however, that other code may be used to access the database collection. For example, in one embodiment, the database collection 230 may interact with various accessory programs to store, retrieve, and process the information of the databases, such as, for example, dynamic link libraries (“DLLs”). DLLs (not shown) may interact with the server component 210, the cruise selling and booking component 220, and the database collection 230 directly, or with the database collection 230 via a database manipulation module, such as, for example, a Microsoft Database Access Object (“DAO”). The execution of the DLL may be called automatically from within the scripts or routines of the web page documents as needed and may not necessarily require the customer or agent explicitly launch a separate program or series of programs.

[0084] In one embodiment, the database collection 230 is implemented using a relational database, such as, for example, those sold by Oracle Corp. or Sybase. It is recognized however that other relational databases may be used and/or other types of databases may be used, such as, for example, object oriented databases, flat file databases, and so forth. Furthermore, the database collection 230 may be implemented as a single database with separate tables or as other data structures that are well know in the art such as linked lists, binary trees, and so forth.

[0085] In one embodiment, the database collection 230 is implemented as a separate component or separate components from the cruise selling and booking component 220 and/or the server component 210, though it is recognized that in other embodiments, the database collection 230 may be implemented on the same component as the cruise selling and booking component 220 and/or the server component 210. For more information on the types of computers and/or platforms that may be used to run the database collection, please see the section above entitled “Server Component.”

[0086] As noted above, one embodiment that is implemented using a web server (“web server environment”) provides several advantages. First, the web server environment does not require any dedicated hardware or software to be installed on the customer or agents computer which will utilize the cruise selling and booking system 110. This advantage may apply to both customers and agents in that they do not have the burden of expense normally associated with purchasing or licensing a dedicated system. Second, maintenance and upgrades of the cruise selling and booking system 110 may be centrally administrated and automatically processed with little or no intervention by those using the cruise selling and booking system 110. For example, the cruise line database 234 may be updated without the customer's knowledge. In addition, each computer which connects to the cruise selling and booking system 110 automatically receives and connects with the most appropriate software as determined by the web server of the cruise selling and booking system 110. In addition, the interactive interface of the cruise selling and booking system 110, like many interactive web pages, uses the familiar environment of a web browser running on the computer the customer or agent uses, thus, minimizing the learning time required to operate and become proficient with the cruise selling and booking system 110.

[0087] A detailed description of embodiments of a cruise selling and booking system 110 is disclosed in a concurrently filed application having the title “SYSTEMS AND METHODS OF ON-LINE BOOKING OF CRUISES,” internal reference number TRAVL.002A, which is incorporated herein by reference. A detailed description of embodiments of pricing options and price matrices is disclosed in a concurrently filed application having the title “SYSTEMS AND METHODS OF DISPLAYING CRUISE LINE PRICING DATA,” internal reference number TRAVL.018A, which is incorporated herein by reference. A detailed description of one embodiments of managing agent ownership is disclosed in a concurrently filed application having the title “SYSTEMS AND METHODS OF MAINTAIING CLIENT RELATIONSHIPS,” internal reference number TRAVL.019A, which is incorporated herein by reference. A detailed description of embodiments of qualification is disclosed in a concurrently filed application having the title “SYSTEMS AND METHODS OF MATCHING CUSTOMER PREFERENCES WITH AVAILABLE OPTIONS,” internal reference number TRAVL.020A, which is incorporated herein by reference.

[0088] III. Comparison Module

[0089] In one embodiment, the cruise selling and booking component 220 includes a comparison module 380 used to provide side-by-side comparisons of various cruise package and pricing information. FIG. 4 illustrates one embodiment of a comparison module 380 which includes a compare display process 410. For more information on the compare display process 410, please refer to the section below entitled “Comparison Processes—Compare Display Process.” The comparison module 380 may also include other processes (not shown). For example, the comparison module may include a process that enables the cards of the compare display to scroll simultaneously by anchoring the cards together such that any scrolling action on one card is mirrored in the other cards. This feature enables the user to readily compare information. For example, as the user scrolls to view the sixth day of the itinerary on one card, the sixth day of the itinerary of the other cards is also scrolled into the user's view. In addition, for adding a new set of data to an empty card, the comparison module may include a process that determines the location of the data in the non-empty cards, finds the corresponding location of the new set of data, and then places the new set of data in the empty card at the appropriate location. This enables a user to add a new card and still view the same data on all of the cards. If a user is looking at the itinerary section of card 1 and adds card 2 and card 3, the comparison module may present the user with card 2 and card 3 such that the itinerary section is display and the data in card 2 and card 3 is aligned with card 1. Such features may be implemented using a variety of user interface features, such as, for example, window coordinates, data markers, and so forth.

[0090] In one embodiment, the comparison module 380 is implemented to provide a web browser, frame-based layout that includes three areas for cards of cruise package and pricing information. It is recognized, however, that in other embodiments a different number of cards may be included. The cards graphically present sets of cruise package and pricing information from a variety of cruise lines. The comparison module 380 may be implemented using one or more of a variety of technologies such as, C++, VISUAL BASIC, JAVA, JAVA Script, Active Server Pages (“ASP”), Extensible Markup Language (“XML”), as well as other scripting languages that may be used to dynamically retrieve, generate, process, and/or format the data for a web document.

[0091] As used herein, the word module refers to logic embodied in hardware or firmware, or to a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, C++. A software module may be compiled and linked into an executable program, or installed in a dynamic link library, or may be written in an interpretive language such as BASIC. It will be appreciated that software modules may be callable from other modules or from themselves, and/or may be invoked in response to detected events or interrupts. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The modules described herein are preferably implemented as software modules, but may be represented in hardware or firmware.

[0092] IV. Compare Display

[0093]FIG. 5, FIG. 6A, FIG. 6B, and FIG. 6C illustrate embodiments of a compare display. FIG. 5 illustrates a compare display template for which no cruise packages have been selected. FIGS. 6A, FIG. 6B, and FIG. 6C illustrates a compare display for which two of the cruise packages have been selected.

[0094] A. Compare Display Template

[0095] One embodiment of a compare display template that may be used in the side-by-side comparison of cruise package and pricing information is illustrated in FIG. 5. The exemplary compare display template includes three cards 510, 520, and 530, wherein each card includes two primary frames. For example, the first card 510 includes frames 512 and 514; the second card 520 includes frames 522 and 524; and the third card 530 includes frames 532 and 534. Frames 512, 522, and 532 present the title section information as well as the agent selection buttons, “Book/Option,” “quote,” and “Clear.” In one embodiment, these frames remain static as the user scrolls through the other cruise package and pricing information. The comparison frames 514, 524, and 534 present the primary information about the cruise package and pricing information. In particular, frame 512 includes agent action buttons for frame 514 and together they make up card number one. In one embodiment, the information in frame 514 may change, but the action buttons persist until the user clears the card. The relationship is similar for frames 522 and 524 and frames 532 and 534.

[0096] In one embodiment, the three cards may scroll simultaneously using alignment markers that are programmed into the dynamically generated compare display. The six separate frames thereby represent a total of three cards that are linked together.

[0097] The comparison frames 514, 524, and 534 may include fields that are dynamically populated with data. In one embodiment, the fields may be populated if the information is available, though some of the fields may remain empty if the comparison module 380 is unable to provide current or accurate data. In one embodiment, empty fields remain visible to act as place holders so that the selected cards scroll together. Furthermore, in one embodiment, the data may be retrieved from the database collection 230 of the cruise selling and booking system 110, retrieved from external sources, such as, for example, cruise lines, external databases, travel agencies, and so forth, and/or dynamically generated.

[0098] While the compare display illustrated in FIG. 5 shows three cards each comprising two primary frames, it is recognized that in other embodiments, a different number of cards and/or frames may be used to implement the compare display. For example, in one embodiment, the compare display may include five cards wherein each card includes four frames.

[0099] B. Compare Display

[0100] The compare display 610 of FIG. 6A displays information about two cruise packages, the Carnival Tropicale and the Princess Dawn Princess, side-by-side. The third card is available such that another set of cruise package and pricing information may selected for display.

[0101] In order to accommodate the large amount of information included in each card, the compare display may display a portion of the cards such that the user may utilize scroll bars to enable the user to scroll through a view of the cruise package and pricing information. FIG. 6B illustrates one embodiment of a compare display 610 wherein the top portion of the cards is displayed. Furthermore, in one embodiment, the cards scroll simultaneously such that if a user scrolls up or down one card, the other card(s) scroll accordingly as well. For example, when the user changes the display to view the itinerary section of cruise package 1, the itinerary section of cruise package 2 is also displayed. FIG. 6C illustrates one embodiment of a compare display 610 wherein the user has scrolled to the itinerary section such that as one card scrolled to the itinerary section, the other card scrolled simultaneously. Furthermore, if a user selects to view cruise package 3, the itinerary section of cruise package 3 is displayed aside the other cruise packages and scrolls simultaneously as well. In addition, some of the sections may also include individual scroll bars. Thus, when the agent computer 240 scrolls through the itinerary section of cruise package 1, the itinerary sections of cruise package 2 and cruise package 3 scroll simultaneously.

[0102] The illustrated cards include seven primary sections: the title section 611, 621, the button section 612, 622, the cruise summary section 613, 623, the cruise price summary section 614, 624, the cabin section 615, 625, the itinerary section 616, 626, and the rules and regulations section 617, 627. These sections may appear for each card in the exemplary compare display. Detailed cruise package and pricing information for each sailing that the agent chooses is shown in each card. In one embodiment, the information may be retrieved from the database collection 230 of the cruise selling and booking system 110, retrieved from external sources, such as, for example, cruise lines, external databases, travel agencies, and so forth, and/or dynamically generated.

[0103] 1. Title Section

[0104] The title section 611, 621 includes information regarding the cruise line, the selected ship, and the starting date of travel. In one embodiment, the title section is static and remains on display as the user scrolls through the cruise package and pricing information.

[0105] 2. Button Section

[0106] The button section 612, 622 includes buttons that permit the user to gather specific information for the customer and to perform tasks that assist in booking and selling of the cruise package. Three buttons appear in the exemplary button section, the “Book/Option” button, the “Quote” button, and the “Clear” button.

[0107] a. Book/Option Button

[0108] The first button in the button section of the exemplary compare display is the “Book/Option” button. The book function enables the user to book cruises by accepting and providing deposit and booking information to the cruise line via the cruise selling and booking system 110. The option function enables the user to reserve a cruise for a predetermined period of time without submitting a payment and without providing specific customer information to the cruise line such that the cruise package may be booked at a later date. In one embodiment, the predetermined time frame may be set by the cruise selling and booking system 110 and/or the cruise lines. For example, the cruise selling and booking system 110 may allow a hold for fourteen days, while Carnival Cruise Line may only allow holds for seven days. In one embodiment, after the time expires, the offer that the agent presented to the customer becomes void.

[0109] When the user selects the “Book/Option” button, the user is provided with a document that presents and requests pertinent information for booking a cruise package. The user may confirm a customer's itinerary, passenger sailing information, cruise details, cabin selections, and the like. The user may also select add-ons, excursions, air transportation, pre/post cruise packages, and insurance. In addition, a worksheet may also be displayed inviting the user to submit information used to process the customer's booking. The worksheet include specific pricing information for each person sailing and records specific options that have been selected for each individual person. In addition, the worksheet may provide sub totals for the various package details, tax, commission details, as well as a total amount due and/or payment status.

[0110] The worksheet may be interactive enabling the user to enter information pertaining to any of the options by clicking on the field and entering the information. In one embodiment, the user may populate the fields using a variety of user interface objects, such as, for example, text fields, radio buttons, check boxes, sliding bars, and so forth. In addition, the user may enter the information via a peripheral device or via a download process initiated by other interface objects, such as pull-down menus. The information may then be stored in the database collection 230 of the cruise selling and booking system 110 and/or any other database. Furthermore, the customer information may be transmitted directly to the cruise lines using a variety of methods, such as, for example, database download, facsimile transmissions, real time queries, agent phone calls, and so forth. Additionally, in one embodiment, the customer booking information is linked to back office software to aid in the process of record keeping and payment tracking.

[0111] b. Quote Button

[0112] The next button in the button section of the exemplary compare display is the “Quote” button. A user may utilize the quote button to provide a quote for the customer, such as, for example, if a customer is not ready to book or hold a cruise, if the cruise line does not permit access to real time pricing/availability information, or the pricing/availability information has not been updated. In one embodiment, the quote button may be used to store information for other agents so that the task of manually entering information for an individual customer is only done once.

[0113] When the quote button is selected, the user is taken to a window enabling the user to enter information pertaining to the customer's desired cruise package, to save the entered information by selecting the add button in the window, and to return to the compare display. Alternatively, the user may cancel the quote and return to compare display without saving any of the entered information.

[0114] For example, a user may utilize the quote button when working with a customer who wants to sail with a smaller cruise line for which the cruise selling and booking system 110 may not have current information. The user may save the customer's information and contact the cruise line directly to determine the price for the cruise packages. The user may then determine prices, commission, taxes, and totals, and may enter such information into the window and store the information in the cruise selling and booking system 110.

[0115] c. Clear Button

[0116] The third button in the button section of the exemplary compare display is the “Clear” button. The clear button removes a previously selected card from the side-by-side comparison. When the user selects the clear button, the information from the card, including the top and the bottom frames is removed, and the other cards on display remain in their current locations prior to the removal process. When the user selects another set of cruise package and pricing information, the set is displayed in the vacated slot. In other embodiments, the cards may shift to one side such that the open card is always the left most card or the right most card.

[0117] In one embodiment, the customer may have a lot of flexibility regarding both pricing and dates of travel. The clear button enables an agent to compare a wide variety of cruise packages and pricing schemes thereby reducing the time required to find cruises that a customer may want to book. Cruise package and pricing information may be added and removed from the compare display at the selection of a button. When the user realizes that the cruise is no longer of interest to the customer, he can remove the selection by selecting the clear button creating room for another set of cruise package and pricing information in the compare display.

[0118] 3. Cruise Summary Section

[0119] The cruise summary section 613, 623 presents information regarding the type of pricing information selected (e.g., “cruise only” package or “cruise/air” package). In addition, the cruise summary section identifies the rate option that the agent used to make the pricing selection as well as the number of nights that the particular ship will be at sea. The cruise summary section may also include the number of passengers and the category of accommodations that was selected.

[0120] 4. Cruise Price Summary Section

[0121] The cruise price summary section 614, 624 provides various information on the pricing scheme for the selected cruise category and sailing. This information may include price details such as the per person price, port charges, government fees, transportation fees, transportation taxes, miscellaneous charges, insurance amount, deposit amount, and final payment amount. The cruise price summary section may also include information regarding the final payment due date, cabin selection, as well as dining preferences.

[0122] 5. Cabin Section

[0123] The cabin section 615, 625 provides information on the selected cabin, if any. The exemplary cabin section 615, 625 includes a “Cabin” button that permits the user to select and/or reserve a cabin. When the “Cabin” button is selected, a cabin assignment worksheet is displayed to the user. This worksheet includes all of the potential cabin locations that correspond to the category selected by the customer and may include cabins for other categories as well. In one embodiment, the potential cabin locations may be limited based upon cabin availability at the time of the query. The cabin availability may be determined by the cruise selling and booking system 110 via an internal inquiry to the database collection 230 or via an external inquiry to a third party database, cruise line, travel agency, and so forth. Depending on the selected category, the user may be presented with a few cabin choices or a wide variety of choices. Furthermore, the user may be presented with the option to view a detailed map that includes all of the cabin locations with corresponding numbers. This map assists the user with his cabin selection as each cruise ship is unique in its cabin categories and locations. After the user has selected a cabin, the user may return to the cabin assignment worksheet.

[0124] From the cabin assignment worksheet, the user may reserve a specific cabin location and number for a predetermined amount of time to allow for the completion of any unfinished business prior to completing the cruise booking for the customer. The predetermined amount of time may be set by the cruise selling and booking system 110 and/or the individual cruise lines. The cabin hold feature is offered by many of the cruise lines for a fixed amount of time.

[0125] In one embodiment, the user may know the ship on which the customer would like to travel but may be unsure of the available cabin categories. The cabin hold feature enables the user to view the different categories and their cabin locations. The user sees visual representations of the cruise ship and may provide valuable information to the customer. In addition, once the customer decides which cabin he would like to reserve, the user may reserve the cabin while processing other information. For example, if a customer decides to travel under a category five room, then the user can hold a specific category five cabin for ten minutes while gathering the customer's remaining booking information.

[0126] Additionally, the cabin section 615, 625 may also include a “Dining” button that permits the user to select dining preferences for the customer. The “Dining” button, when selected, presents the user with various dining preferences. Some of the more common dining preferences offered by the cruise lines are first or second seating, large or small tables, age of table occupants, and smoking preference. In one embodiment, if a cruise line does not provide dining preferences, the feature appears as “not available.”

[0127] 6. Itinerary Section

[0128] The itinerary section 616, 626 includes specific itinerary information that corresponds to the selected cruise sailing and may include a table of data for each day of the cruise designating the day of the week, the date, and the port. The information may also include the docking and sailing times thereby permitting the customers to plan off-shore excursions subsequent to their cruise. In one embodiment, the itinerary section is independently scrollable within the compare display and offers the user the ability to view the itinerary information without disrupting the simultaneous scrolling feature of the comparison. In other embodiments, the itinerary section of the cards may also permit simultaneous scrolling.

[0129] 7. Rules and Restrictions Section

[0130] The rules and restrictions section 617, 627 includes specific rules and restrictions to which the customer must agree to prior to booking the cruse. In one embodiment, the rules include general rules, such as, for example, the total deposits/payments, what age constitutes an adult, and credit card acceptance. This section also includes independently scrollable windows as to not disrupt the simultaneous scrolling feature of the comparison. In other embodiments, the rules and restrictions section of the cards may also permit simultaneous scrolling.

[0131] While one embodiment of a compare display is illustrated in FIG. 6, it is recognized that in other embodiments, different sets and types of data may be used. Furthermore, additional data may be added and/or some of the illustrated data may be excluded. Furthermore, in other embodiments, the compare display may be used in different environments. For example, the compare display may be used to compare product information, car rental information, hotel information, airline information, real estate information, computer information, and so forth.

[0132] V. Comparison Processes

[0133] In one embodiment, the information that is displayed on the page is transferred to the first available opening in the side-by-side comparison. In the current model, the cards are filled from left to right and once three cards are populated, the user must cancel one of the cards as selecting a fourth will not automatically remove a previous selection. It is recognized that in other embodiments, if the user makes a selection when there are no available cards, the comparison module 380 may replace one of the existing sets of information with the newly selected information using a variety of techniques, such as, removing the last added card, the first added card, the card in the first card, and so forth.

[0134] In one embodiment, the comparison module 380 assists users in displaying detailed information of up to N different cruise packages at one time where N is a fixed integer. In some embodiments, the fixed integer, N, may be determined in part by the size of the display. The exemplary compare display 610 of FIG. 6 allows the user to display up to three different cruise package summaries at one time, such that N=3. The comparison module 380 may then retrieve detailed information about the selected cruise packages and display the information in the compare display. After the cards have been filled, the user may change his selections by clearing one or more of the cards and selecting other cruise packages for display. The comparison module 380 may then retrieve the detailed information about the selected cruise packages and display the information in the cleared cards.

[0135] A. Compare Display Process

[0136] An overview of one embodiment of a compare display process 410 is shown in FIG. 7. Beginning at a start state (block 710), the compare display process 410 transitions to the next state (block 720) and receives a cruise package selection. The compare display process 410 may then determine whether there is an available card (block 730). If no card is available, the compare display process 410 may return an error message (block 740) and transition to an end state (block 780). In other embodiments, the compare display process 410 may automatically clear one of the cards or query the user for information on which card to clear. If there is an available card, the compare display process 410 retrieves the corresponding data for the selected cruise package (block 750). It is recognized that the cruise package and pricing information may include information from internal databases, such as, for example, the database collection, as well as external sources, such as, of example, cruise lines, external databases, travel agencies, and so forth. In addition, the compare display process 410 may also perform calculations on the information, such as, for example, calculating deposit information, travel insurance costs, and so forth. Next, the compare display process 410 may format the information for display in the compare display (block 760). The compare display process 410 then sends the formatted data to the user for display in the available card (block 770) and proceeds to the end state (block 780). In other embodiments, the compare display process 410 may send unprocessed and unformatted data to the user such that the data is formatted and/or processed by the user's computer.

[0137] B. User Selection Process

[0138] An overview of one embodiment of a user selection process is shown in FIG. 8. Beginning at a start state (block 810) the user selection process transitions to the next state (block 820) where, for each of the empty cards, the user may select a cruise package for display (block 820). If the user decides to change his selection (block 830), the user may then clear one of the cards (block 840) and then select another cruise package (block 850). The user selection process may then return to block 830 allowing the user to again change his selection. If the user decides not to make any changes, the user selection process may then transition to an end state (block 860).

[0139] V. Conclusion

[0140] While certain embodiments of the invention have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the present invention. Accordingly, the breadth and scope of the present invention should be defined in accordance with the following claims and their equivalents. 

What is claimed is:
 1. A method of providing cruise package and pricing information for comparison utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs, the method comprising: receiving a selection of at least two cruise packages from a remote user's web browser program; obtaining cruise package and pricing information that corresponds to the at least two cruise packages from an electronic database of cruise data; preparing the cruise package and pricing information for display in an electronic web document; and sending the prepared cruise package pricing information to the remote user's web browser program.
 2. The method of claim 1, wherein the at least two cruise packages correspond to at least two cruise lines.
 3. A method of using a computer to compare cruise package and pricing information utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs, the method comprising: receiving a request for cruise package and pricing information for at least two cruise different cruise lines from a remote user's web browser program; retrieving cruise package and pricing information that corresponds to the request from a database of electronically stored cruise line data; and outputting the cruise package and pricing information for display as an electronic document by the remote user's web browser program.
 4. The method of claim 3 further comprising preparing the cruise package and pricing information for the at least two different cruise lines for side-by-side display.
 5. A method of requesting cruise package and pricing information for comparison using a web browser program to electronically communicate with a remote cruise web server system via a data communications network, the method comprising: sending a request to the remote cruise web server system for cruise package and pricing information for at least two different cruise lines; and receiving cruise package and pricing information from the remote cruise web server system that corresponds to the request, wherein the cruise package and pricing information was retrieved from an electronic database of cruise line data and the cruise package and pricing information is formatted for side-by-side display by the web browser program.
 6. A method of using a computer to book a cruise package using a web browser program to electronically communicate with a remote cruise web server system via a data communications network, the method comprising: sending a request to the remote cruise web server system for cruise package and pricing information for at least two cruise different cruise ships; and receiving from the remote cruise web server system the cruise package and pricing information for the at least two different cruise ships, wherein the cruise package and pricing information is displayed in a side-by-side display using the web browser program.
 7. The method of claim 6 further comprising preparing the cruise package and pricing information for the at least two different cruise ships for side-by-side display.
 8. In a network comprising a user node having a browser program coupled to the network, the user node providing requests for information on the network, a network node comprising: a cruise booking node responsive to a request to retrieve cruise package and pricing information for at least two different cruise lines from the user node, wherein the cruise booking node retrieves cruise package and pricing information from an electronic database for display in an electronic document and sends the cruise package and pricing information to the user node.
 9. The network node of claim 8, wherein the cruise package and pricing information is prepared for side-by-side display.
 10. The network node of claim 8, wherein the electronic database is a cruise line database configured to store cruise package and pricing information for at least two different cruise lines wherein the cruise line database is in communication with the cruise booking node.
 11. A system for comparing cruise packages implemented in a web server environment, wherein a plurality of remote users using web browser programs electronically communicate with the system via a data communications network, the system comprising: an electronically stored data structure of cruise package and pricing information wherein the cruise package and pricing information includes information from different cruise lines; a program module configured to receive a display request from a remote user's web browser program; a program module configured to obtain cruise package and pricing information from the electronically stored data structure based at least upon the display request; a program module configured to prepare the obtained cruise package and pricing information for display in an electronic web document; and a program module configured to output to the remote user's web browser program the prepared cruise package and pricing information for display in the electronic web document.
 12. The system of claim 11, wherein the display is a side-by-side display.
 13. A method of organizing cruise package and pricing information for display utilizing a cruise selling and booking web server system to electronically communicate via a data communications network with a plurality of remote users using web browser programs, the method comprising: receiving a first identifier corresponding to a first cruise package from a remote user's web browser program; retrieving a first set of cruise package and pricing information from an electronic database, wherein the first set of cruise package and pricing information corresponds to the first identifier; receiving a second identifier corresponding to a second cruise package from the remote user's web browser program; retrieving a second set of cruise package and pricing information from the electronic database, wherein the second set of cruise package and pricing information corresponds to the second identifier; formatting at least a portion of the first set of cruise package and pricing information and at least a portion of the second set of cruise package and pricing information for display in a side-by-side comparison section of an electronic document, wherein the side-by-side comparison section includes at least a first window and a second window; and returning to the remote user's web browser program the formatted at least a portion of the first set of cruise package and pricing information and at least a portion of the second set of cruise package and pricing information.
 14. The method of claim 13, wherein the electronic database includes a cruise information database.
 15. The method of claim 13, wherein the electronic database includes a cruise pricing database.
 16. The method of claim 13, wherein the electronic database includes a cruise information database and a cruise pricing database.
 17. The method of claim 13, wherein the electronic database includes an internal database and an external database.
 18. The method of claim 13, wherein retrieving a first set of cruise package and pricing information further includes querying a first cruise line system that corresponds to the first cruise package.
 19. The method of claim 13, wherein formatting at least a portion of the first set of cruise package and pricing information and at least a portion of the second set of cruise package and pricing information for display includes preparing the at least a portion of the first set of cruise package for display in the first window and preparing the at least a portion of the second set of cruise package for display in the second window.
 20. The method of claim 13, wherein the first window and the second window are configured to be displayed side-by-side.
 21. The method of claim 13, wherein the first window and the second window are configured to scroll at the same time.
 22. The method of claim 19, wherein the first window and the second window are configured to be displayed side-by-side.
 23. The method of claim 19, wherein the first window and the second window are configured to scroll at the same time.
 24. A method of using a computer to compare cruise package information using a web browser program to electronically communicate with a remote cruise web server system via a data communications network, the method comprising: sending a request for a first set of cruise package and pricing information to the remote cruise web server system; sending a request for a second set of cruise package and pricing information to the remote cruise web server system; receiving from the remote cruise web server system the first set of cruise package and pricing information in a first window of a display, wherein the display is included in a web document accessible by the web browser program; and receiving from the remote cruise web server system the second set of cruise package and pricing information in a second window of the display.
 25. The method of claim 24, wherein the first window and the second window are displayed side-by-side.
 26. The method of claim 24 further comprising: sending a request to clear one of the first window or the second window to the remote cruise web server system; and viewing the display using the web browser program wherein the selected one of the first window or the second window is cleared.
 27. The method of claim 25 further comprising: sending a request for a third set of cruise package and pricing information to the remote cruise web server system; and receiving from the remote cruise web server system the third set of cruise package and pricing information in the selected one of the first window or the second window.
 28. A method of providing cruise package information for display utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs, the method comprising: receiving a request for cruise package and pricing information from a remote user's web browser program; determining whether a card is available; if there is no card available, returning an error message to the remote user's web browser program; and if card is available, retrieving the requested cruise package and pricing information from an electronic database of cruise data and returning to the remote user's web browser program the cruise package and pricing information for electronic display in an available card.
 29. The method of claim 28, further comprising: processing the cruise package and pricing information.
 30. A system for comparing cruise package information implemented in conjunction with a web browser program, wherein the web browser program communicates with a remote cruise web server system via a data communications network, the system comprising: a selection software component configured to send requests to the remote cruise web server system for cruise package and pricing information for at least two cruise packages; and a display software component configured to display in the web browser program the requested cruise package and pricing information for the at least two cruise packages in a side-by-side display as part of an electronic document.
 31. The system of claim 30, wherein the selection software component is further configured to send requests to the remote cruise web server system for clearing at least a portion of the display.
 32. A method of providing cruise package and pricing information for comparison utilizing a cruise web server environment to electronically communicate via a data communications network with a plurality of remote users using web browser programs, the method comprising: means for receiving a selection of at least two cruise packages from a remote user's web browser program; obtaining cruise package and pricing information that corresponds to the at least two cruise packages from an electronic database of cruise data; means for preparing the cruise package and pricing information for display in an electronic web document; and means for sending the prepared cruise package pricing information to the remote user's web browser program.
 33. A method of using a computer to book a cruise package using a web browser program to electronically communicate with a remote cruise web server system via a data communications network, the method comprising: means for sending a request to the remote cruise web server system for cruise package and pricing information for at least two cruise different cruise ships; and means for receiving from the remote cruise web server system the cruise package and pricing information for the at least two different cruise ships, wherein the cruise package and pricing information is displayed in a side-by-side display using the web browser program. 